/*eslint-disable*/
const fs = require('fs')
const path = require('path')

//获取要处理的文件，处理路径信息
let file = process.argv[2]

if (!file) process.exit(0)
file = file.split('=')[1]
let filePath = path.resolve(path.dirname(__dirname) + '/' + file)
let warn = []

//自定义规范一：除了storageWhiteList白名单中的文件，其他任何文件不能直接使用localStorage
//不校验localStorage的文件列表
const storageWhiteList = [
  'common/js/storage',
  'common/js/vant',
  'common/js/vue',
  'common/js/vendor',
  'hooks/lint',
  'src/widget/template/template.ssr.html'
]

//是否是白名单文件
let isStorageWrite = storageWhiteList.some(item => file.includes(item))

//非白名单文件
if (!isStorageWrite) {
  let fileContent = fs.readFileSync(file, { encoding: 'utf-8' })

  if (fileContent.includes('localStorage'))
    warn.push(
      `校验不通过：${file}中不能直接使用localStorage，请使用storage，参见common/js/storage.js！`
    )
}

//提示该文件所有的报错信息
if (warn.length) {
  warn.forEach(item => console.log(item))
  process.exit(1)
}

process.exit(0)
